/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.taobao.ibatiside.model.mapperv3.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage;

import org.eclipse.emf.ecore.xml.type.XMLTypePackage;

import org.taobao.ibatiside.model.common.CommonPackage;

import org.taobao.ibatiside.model.common.impl.CommonPackageImpl;

import org.taobao.ibatiside.model.mapperv3.AbstractArg;
import org.taobao.ibatiside.model.mapperv3.AbstractIdOrResult;
import org.taobao.ibatiside.model.mapperv3.AbstractStatement;
import org.taobao.ibatiside.model.mapperv3.Arg;
import org.taobao.ibatiside.model.mapperv3.Association;
import org.taobao.ibatiside.model.mapperv3.Cache;
import org.taobao.ibatiside.model.mapperv3.CacheRef;
import org.taobao.ibatiside.model.mapperv3.CallStmtType;
import org.taobao.ibatiside.model.mapperv3.Case;
import org.taobao.ibatiside.model.mapperv3.Choose;
import org.taobao.ibatiside.model.mapperv3.Collection;
import org.taobao.ibatiside.model.mapperv3.CommonNestedStatement;
import org.taobao.ibatiside.model.mapperv3.Constructor;
import org.taobao.ibatiside.model.mapperv3.Delete;
import org.taobao.ibatiside.model.mapperv3.Discriminator;
import org.taobao.ibatiside.model.mapperv3.DocumentRoot;
import org.taobao.ibatiside.model.mapperv3.Foreach;
import org.taobao.ibatiside.model.mapperv3.Id;
import org.taobao.ibatiside.model.mapperv3.IdArg;
import org.taobao.ibatiside.model.mapperv3.If;
import org.taobao.ibatiside.model.mapperv3.Include;
import org.taobao.ibatiside.model.mapperv3.Insert;
import org.taobao.ibatiside.model.mapperv3.Mapper;
import org.taobao.ibatiside.model.mapperv3.Mapperv3Factory;
import org.taobao.ibatiside.model.mapperv3.Mapperv3Package;
import org.taobao.ibatiside.model.mapperv3.ModeType;
import org.taobao.ibatiside.model.mapperv3.OrderType;
import org.taobao.ibatiside.model.mapperv3.Otherwise;
import org.taobao.ibatiside.model.mapperv3.Parameter;
import org.taobao.ibatiside.model.mapperv3.ParameterMap;
import org.taobao.ibatiside.model.mapperv3.Property;
import org.taobao.ibatiside.model.mapperv3.Result;
import org.taobao.ibatiside.model.mapperv3.ResultMap;
import org.taobao.ibatiside.model.mapperv3.ResultSetTypeType;
import org.taobao.ibatiside.model.mapperv3.Select;
import org.taobao.ibatiside.model.mapperv3.SelectKey;
import org.taobao.ibatiside.model.mapperv3.Set;
import org.taobao.ibatiside.model.mapperv3.Sql;
import org.taobao.ibatiside.model.mapperv3.Trim;
import org.taobao.ibatiside.model.mapperv3.TypeAlias;
import org.taobao.ibatiside.model.mapperv3.Update;
import org.taobao.ibatiside.model.mapperv3.When;
import org.taobao.ibatiside.model.mapperv3.Where;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class Mapperv3PackageImpl extends EPackageImpl implements Mapperv3Package {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass abstractArgEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass abstractIdOrResultEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass abstractStatementEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass argEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass associationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass cacheEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass cacheRefEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass caseEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass chooseEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass collectionEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass commonNestedStatementEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass constructorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass deleteEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass discriminatorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass documentRootEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass foreachEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass idEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass idArgEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass ifEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass includeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass insertEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass mapperEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass otherwiseEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass parameterEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass parameterMapEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass propertyEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass resultEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass resultMapEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass selectEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass selectKeyEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass setEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass sqlEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass trimEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass typeAliasEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass updateEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass whenEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass whereEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum callStmtTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum modeTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum orderTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum resultSetTypeTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EDataType callStmtTypeObjectEDataType = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EDataType modeTypeObjectEDataType = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EDataType orderTypeObjectEDataType = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EDataType resultSetTypeTypeObjectEDataType = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private Mapperv3PackageImpl() {
		super(eNS_URI, Mapperv3Factory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link Mapperv3Package#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static Mapperv3Package init() {
		if (isInited) return (Mapperv3Package)EPackage.Registry.INSTANCE.getEPackage(Mapperv3Package.eNS_URI);

		// Obtain or create and register package
		Mapperv3PackageImpl theMapperv3Package = (Mapperv3PackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Mapperv3PackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Mapperv3PackageImpl());

		isInited = true;

		// Initialize simple dependencies
		EcorePackage.eINSTANCE.eClass();
		XMLNamespacePackage.eINSTANCE.eClass();
		XMLTypePackage.eINSTANCE.eClass();

		// Obtain or create and register interdependencies
		CommonPackageImpl theCommonPackage = (CommonPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI) instanceof CommonPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI) : CommonPackage.eINSTANCE);

		// Create package meta-data objects
		theMapperv3Package.createPackageContents();
		theCommonPackage.createPackageContents();

		// Initialize created meta-data
		theMapperv3Package.initializePackageContents();
		theCommonPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theMapperv3Package.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(Mapperv3Package.eNS_URI, theMapperv3Package);
		return theMapperv3Package;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAbstractArg() {
		return abstractArgEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractArg_Column() {
		return (EAttribute)abstractArgEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractArg_JavaType() {
		return (EAttribute)abstractArgEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractArg_JdbcType() {
		return (EAttribute)abstractArgEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAbstractArg_ResultMap() {
		return (EReference)abstractArgEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAbstractArg_Select() {
		return (EReference)abstractArgEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractArg_TypeHandler() {
		return (EAttribute)abstractArgEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAbstractIdOrResult() {
		return abstractIdOrResultEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractIdOrResult_Column() {
		return (EAttribute)abstractIdOrResultEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractIdOrResult_JavaType() {
		return (EAttribute)abstractIdOrResultEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractIdOrResult_JdbcType() {
		return (EAttribute)abstractIdOrResultEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractIdOrResult_Property() {
		return (EAttribute)abstractIdOrResultEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractIdOrResult_TypeHandler() {
		return (EAttribute)abstractIdOrResultEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAbstractStatement() {
		return abstractStatementEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractStatement_DatabaseId() {
		return (EAttribute)abstractStatementEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractStatement_FlushCache() {
		return (EAttribute)abstractStatementEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractStatement_Id() {
		return (EAttribute)abstractStatementEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAbstractStatement_ParameterMap() {
		return (EReference)abstractStatementEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractStatement_ParameterType() {
		return (EAttribute)abstractStatementEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractStatement_StatementType() {
		return (EAttribute)abstractStatementEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAbstractStatement_Timeout() {
		return (EAttribute)abstractStatementEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getArg() {
		return argEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAssociation() {
		return associationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_Constructor() {
		return (EReference)associationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_Idx() {
		return (EReference)associationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_Result() {
		return (EReference)associationEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_Association() {
		return (EReference)associationEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_Collection() {
		return (EReference)associationEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_Discriminator() {
		return (EReference)associationEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAssociation_Column() {
		return (EAttribute)associationEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAssociation_ColumnPrefix() {
		return (EAttribute)associationEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAssociation_JavaType() {
		return (EAttribute)associationEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAssociation_JdbcType() {
		return (EAttribute)associationEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAssociation_NotNullColumn() {
		return (EAttribute)associationEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAssociation_Property() {
		return (EAttribute)associationEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_ResultMap() {
		return (EReference)associationEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAssociation_Select() {
		return (EReference)associationEClass.getEStructuralFeatures().get(13);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAssociation_TypeHandler() {
		return (EAttribute)associationEClass.getEStructuralFeatures().get(14);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCache() {
		return cacheEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCache_Property() {
		return (EReference)cacheEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCache_Eviction() {
		return (EAttribute)cacheEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCache_FlushInterval() {
		return (EAttribute)cacheEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCache_ReadOnly() {
		return (EAttribute)cacheEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCache_Size() {
		return (EAttribute)cacheEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCache_Type() {
		return (EAttribute)cacheEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCacheRef() {
		return cacheRefEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCacheRef_Namespace() {
		return (EAttribute)cacheRefEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCase() {
		return caseEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCase_Constructor() {
		return (EReference)caseEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCase_Idx() {
		return (EReference)caseEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCase_Result() {
		return (EReference)caseEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCase_Association() {
		return (EReference)caseEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCase_Collection() {
		return (EReference)caseEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCase_Discriminator() {
		return (EReference)caseEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCase_ResultMap() {
		return (EReference)caseEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCase_ResultType() {
		return (EAttribute)caseEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCase_Value() {
		return (EAttribute)caseEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getChoose() {
		return chooseEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getChoose_When() {
		return (EReference)chooseEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getChoose_Otherwise() {
		return (EReference)chooseEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCollection() {
		return collectionEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_Constructor() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_Idx() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_Result() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_Association() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_Collection() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_Discriminator() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_Column() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_ColumnPrefix() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_JavaType() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_JdbcType() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_NotNullColumn() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_OfType() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_Property() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_ResultMap() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(13);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCollection_Select() {
		return (EReference)collectionEClass.getEStructuralFeatures().get(14);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCollection_TypeHandler() {
		return (EAttribute)collectionEClass.getEStructuralFeatures().get(15);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCommonNestedStatement() {
		return commonNestedStatementEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCommonNestedStatement_Mixed() {
		return (EAttribute)commonNestedStatementEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCommonNestedStatement_TgNestedCondition() {
		return (EAttribute)commonNestedStatementEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommonNestedStatement_Include() {
		return (EReference)commonNestedStatementEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommonNestedStatement_Trim() {
		return (EReference)commonNestedStatementEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommonNestedStatement_Where() {
		return (EReference)commonNestedStatementEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommonNestedStatement_Set() {
		return (EReference)commonNestedStatementEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommonNestedStatement_Foreach() {
		return (EReference)commonNestedStatementEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommonNestedStatement_Choose() {
		return (EReference)commonNestedStatementEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCommonNestedStatement_If() {
		return (EReference)commonNestedStatementEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getConstructor() {
		return constructorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConstructor_IdArg() {
		return (EReference)constructorEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConstructor_Arg() {
		return (EReference)constructorEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDelete() {
		return deleteEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDiscriminator() {
		return discriminatorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDiscriminator_Case() {
		return (EReference)discriminatorEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDiscriminator_Column() {
		return (EAttribute)discriminatorEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDiscriminator_JavaType() {
		return (EAttribute)discriminatorEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDiscriminator_JdbcType() {
		return (EAttribute)discriminatorEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDiscriminator_TypeHandler() {
		return (EAttribute)discriminatorEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDocumentRoot() {
		return documentRootEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDocumentRoot_Mixed() {
		return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_XMLNSPrefixMap() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_XSISchemaLocation() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Arg() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Association() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Cache() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_CacheRef() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Case() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Choose() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Collection() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Constructor() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Delete() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Discriminator() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Foreach() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(13);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Id() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(14);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_IdArg() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(15);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_If() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(16);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Include() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(17);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Insert() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(18);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Mapper() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(19);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Otherwise() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(20);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Parameter() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(21);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_ParameterMap() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(22);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Property() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(23);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Result() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(24);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_ResultMap() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(25);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Select() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(26);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_SelectKey() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(27);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Set() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(28);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Sql() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(29);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Trim() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(30);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TypeAlias() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(31);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Update() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(32);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_When() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(33);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Where() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(34);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getForeach() {
		return foreachEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getForeach_Close() {
		return (EAttribute)foreachEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getForeach_Collection() {
		return (EReference)foreachEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getForeach_Index() {
		return (EAttribute)foreachEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getForeach_Item() {
		return (EAttribute)foreachEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getForeach_Open() {
		return (EAttribute)foreachEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getForeach_Separator() {
		return (EAttribute)foreachEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getId() {
		return idEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIdArg() {
		return idArgEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIf() {
		return ifEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getIf_Test() {
		return (EAttribute)ifEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInclude() {
		return includeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInclude_Refid() {
		return (EReference)includeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInsert() {
		return insertEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInsert_SelectKey() {
		return (EReference)insertEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getInsert_KeyColumn() {
		return (EAttribute)insertEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getInsert_KeyProperty() {
		return (EAttribute)insertEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getInsert_UseGeneratedKeys() {
		return (EAttribute)insertEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getMapper() {
		return mapperEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMapper_Group() {
		return (EAttribute)mapperEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_CacheRef() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_Cache() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_ResultMap() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_ParameterMap() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_Sql() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_Insert() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_Update() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_Delete() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMapper_Select() {
		return (EReference)mapperEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMapper_Namespace() {
		return (EAttribute)mapperEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getOtherwise() {
		return otherwiseEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getParameter() {
		return parameterEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameter_JavaType() {
		return (EAttribute)parameterEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameter_JdbcType() {
		return (EAttribute)parameterEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameter_Mode() {
		return (EAttribute)parameterEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameter_Property() {
		return (EAttribute)parameterEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getParameter_ResultMap() {
		return (EReference)parameterEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameter_Scale() {
		return (EAttribute)parameterEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameter_TypeHandler() {
		return (EAttribute)parameterEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getParameterMap() {
		return parameterMapEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getParameterMap_Parameter() {
		return (EReference)parameterMapEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameterMap_Id() {
		return (EAttribute)parameterMapEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getParameterMap_Type() {
		return (EAttribute)parameterMapEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getProperty() {
		return propertyEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getProperty_Name() {
		return (EAttribute)propertyEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getProperty_Value() {
		return (EAttribute)propertyEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getResult() {
		return resultEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getResultMap() {
		return resultMapEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultMap_Constructor() {
		return (EReference)resultMapEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultMap_Idx() {
		return (EReference)resultMapEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getResultMap_Id() {
		return (EAttribute)resultMapEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultMap_Result() {
		return (EReference)resultMapEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultMap_Association() {
		return (EReference)resultMapEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultMap_Collection() {
		return (EReference)resultMapEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultMap_Discriminator() {
		return (EReference)resultMapEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getResultMap_AutoMapping() {
		return (EAttribute)resultMapEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultMap_Extends() {
		return (EReference)resultMapEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getResultMap_Type() {
		return (EAttribute)resultMapEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSelect() {
		return selectEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelect_FetchSize() {
		return (EAttribute)selectEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelect_ResultMap() {
		return (EReference)selectEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelect_ResultSetType() {
		return (EAttribute)selectEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelect_ResultType() {
		return (EAttribute)selectEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelect_UseCache() {
		return (EAttribute)selectEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSelectKey() {
		return selectKeyEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelectKey_Mixed() {
		return (EAttribute)selectKeyEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelectKey_TgNestedCondition() {
		return (EAttribute)selectKeyEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelectKey_Include() {
		return (EReference)selectKeyEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelectKey_Trim() {
		return (EReference)selectKeyEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelectKey_Where() {
		return (EReference)selectKeyEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelectKey_Set() {
		return (EReference)selectKeyEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelectKey_Foreach() {
		return (EReference)selectKeyEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelectKey_Choose() {
		return (EReference)selectKeyEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSelectKey_If() {
		return (EReference)selectKeyEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelectKey_DatabaseId() {
		return (EAttribute)selectKeyEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelectKey_KeyProperty() {
		return (EAttribute)selectKeyEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelectKey_Order() {
		return (EAttribute)selectKeyEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelectKey_ResultType() {
		return (EAttribute)selectKeyEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSelectKey_StatementType() {
		return (EAttribute)selectKeyEClass.getEStructuralFeatures().get(13);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSet() {
		return setEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSql() {
		return sqlEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSql_Id() {
		return (EAttribute)sqlEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTrim() {
		return trimEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTrim_Prefix() {
		return (EAttribute)trimEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTrim_PrefixOverrides() {
		return (EAttribute)trimEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTrim_Suffix() {
		return (EAttribute)trimEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTrim_SuffixOverrides() {
		return (EAttribute)trimEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTypeAlias() {
		return typeAliasEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeAlias_Alias() {
		return (EAttribute)typeAliasEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeAlias_Type() {
		return (EAttribute)typeAliasEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUpdate() {
		return updateEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getWhen() {
		return whenEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getWhen_Test() {
		return (EAttribute)whenEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getWhere() {
		return whereEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getCallStmtType() {
		return callStmtTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getModeType() {
		return modeTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getOrderType() {
		return orderTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getResultSetTypeType() {
		return resultSetTypeTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EDataType getCallStmtTypeObject() {
		return callStmtTypeObjectEDataType;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EDataType getModeTypeObject() {
		return modeTypeObjectEDataType;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EDataType getOrderTypeObject() {
		return orderTypeObjectEDataType;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EDataType getResultSetTypeTypeObject() {
		return resultSetTypeTypeObjectEDataType;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Mapperv3Factory getMapperv3Factory() {
		return (Mapperv3Factory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		abstractArgEClass = createEClass(ABSTRACT_ARG);
		createEAttribute(abstractArgEClass, ABSTRACT_ARG__COLUMN);
		createEAttribute(abstractArgEClass, ABSTRACT_ARG__JAVA_TYPE);
		createEAttribute(abstractArgEClass, ABSTRACT_ARG__JDBC_TYPE);
		createEReference(abstractArgEClass, ABSTRACT_ARG__RESULT_MAP);
		createEReference(abstractArgEClass, ABSTRACT_ARG__SELECT);
		createEAttribute(abstractArgEClass, ABSTRACT_ARG__TYPE_HANDLER);

		abstractIdOrResultEClass = createEClass(ABSTRACT_ID_OR_RESULT);
		createEAttribute(abstractIdOrResultEClass, ABSTRACT_ID_OR_RESULT__COLUMN);
		createEAttribute(abstractIdOrResultEClass, ABSTRACT_ID_OR_RESULT__JAVA_TYPE);
		createEAttribute(abstractIdOrResultEClass, ABSTRACT_ID_OR_RESULT__JDBC_TYPE);
		createEAttribute(abstractIdOrResultEClass, ABSTRACT_ID_OR_RESULT__PROPERTY);
		createEAttribute(abstractIdOrResultEClass, ABSTRACT_ID_OR_RESULT__TYPE_HANDLER);

		abstractStatementEClass = createEClass(ABSTRACT_STATEMENT);
		createEAttribute(abstractStatementEClass, ABSTRACT_STATEMENT__DATABASE_ID);
		createEAttribute(abstractStatementEClass, ABSTRACT_STATEMENT__FLUSH_CACHE);
		createEAttribute(abstractStatementEClass, ABSTRACT_STATEMENT__ID);
		createEReference(abstractStatementEClass, ABSTRACT_STATEMENT__PARAMETER_MAP);
		createEAttribute(abstractStatementEClass, ABSTRACT_STATEMENT__PARAMETER_TYPE);
		createEAttribute(abstractStatementEClass, ABSTRACT_STATEMENT__STATEMENT_TYPE);
		createEAttribute(abstractStatementEClass, ABSTRACT_STATEMENT__TIMEOUT);

		argEClass = createEClass(ARG);

		associationEClass = createEClass(ASSOCIATION);
		createEReference(associationEClass, ASSOCIATION__CONSTRUCTOR);
		createEReference(associationEClass, ASSOCIATION__IDX);
		createEReference(associationEClass, ASSOCIATION__RESULT);
		createEReference(associationEClass, ASSOCIATION__ASSOCIATION);
		createEReference(associationEClass, ASSOCIATION__COLLECTION);
		createEReference(associationEClass, ASSOCIATION__DISCRIMINATOR);
		createEAttribute(associationEClass, ASSOCIATION__COLUMN);
		createEAttribute(associationEClass, ASSOCIATION__COLUMN_PREFIX);
		createEAttribute(associationEClass, ASSOCIATION__JAVA_TYPE);
		createEAttribute(associationEClass, ASSOCIATION__JDBC_TYPE);
		createEAttribute(associationEClass, ASSOCIATION__NOT_NULL_COLUMN);
		createEAttribute(associationEClass, ASSOCIATION__PROPERTY);
		createEReference(associationEClass, ASSOCIATION__RESULT_MAP);
		createEReference(associationEClass, ASSOCIATION__SELECT);
		createEAttribute(associationEClass, ASSOCIATION__TYPE_HANDLER);

		cacheEClass = createEClass(CACHE);
		createEReference(cacheEClass, CACHE__PROPERTY);
		createEAttribute(cacheEClass, CACHE__EVICTION);
		createEAttribute(cacheEClass, CACHE__FLUSH_INTERVAL);
		createEAttribute(cacheEClass, CACHE__READ_ONLY);
		createEAttribute(cacheEClass, CACHE__SIZE);
		createEAttribute(cacheEClass, CACHE__TYPE);

		cacheRefEClass = createEClass(CACHE_REF);
		createEAttribute(cacheRefEClass, CACHE_REF__NAMESPACE);

		caseEClass = createEClass(CASE);
		createEReference(caseEClass, CASE__CONSTRUCTOR);
		createEReference(caseEClass, CASE__IDX);
		createEReference(caseEClass, CASE__RESULT);
		createEReference(caseEClass, CASE__ASSOCIATION);
		createEReference(caseEClass, CASE__COLLECTION);
		createEReference(caseEClass, CASE__DISCRIMINATOR);
		createEReference(caseEClass, CASE__RESULT_MAP);
		createEAttribute(caseEClass, CASE__RESULT_TYPE);
		createEAttribute(caseEClass, CASE__VALUE);

		chooseEClass = createEClass(CHOOSE);
		createEReference(chooseEClass, CHOOSE__WHEN);
		createEReference(chooseEClass, CHOOSE__OTHERWISE);

		collectionEClass = createEClass(COLLECTION);
		createEReference(collectionEClass, COLLECTION__CONSTRUCTOR);
		createEReference(collectionEClass, COLLECTION__IDX);
		createEReference(collectionEClass, COLLECTION__RESULT);
		createEReference(collectionEClass, COLLECTION__ASSOCIATION);
		createEReference(collectionEClass, COLLECTION__COLLECTION);
		createEReference(collectionEClass, COLLECTION__DISCRIMINATOR);
		createEAttribute(collectionEClass, COLLECTION__COLUMN);
		createEAttribute(collectionEClass, COLLECTION__COLUMN_PREFIX);
		createEAttribute(collectionEClass, COLLECTION__JAVA_TYPE);
		createEAttribute(collectionEClass, COLLECTION__JDBC_TYPE);
		createEAttribute(collectionEClass, COLLECTION__NOT_NULL_COLUMN);
		createEAttribute(collectionEClass, COLLECTION__OF_TYPE);
		createEAttribute(collectionEClass, COLLECTION__PROPERTY);
		createEReference(collectionEClass, COLLECTION__RESULT_MAP);
		createEReference(collectionEClass, COLLECTION__SELECT);
		createEAttribute(collectionEClass, COLLECTION__TYPE_HANDLER);

		commonNestedStatementEClass = createEClass(COMMON_NESTED_STATEMENT);
		createEAttribute(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__MIXED);
		createEAttribute(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__TG_NESTED_CONDITION);
		createEReference(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__INCLUDE);
		createEReference(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__TRIM);
		createEReference(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__WHERE);
		createEReference(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__SET);
		createEReference(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__FOREACH);
		createEReference(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__CHOOSE);
		createEReference(commonNestedStatementEClass, COMMON_NESTED_STATEMENT__IF);

		constructorEClass = createEClass(CONSTRUCTOR);
		createEReference(constructorEClass, CONSTRUCTOR__ID_ARG);
		createEReference(constructorEClass, CONSTRUCTOR__ARG);

		deleteEClass = createEClass(DELETE);

		discriminatorEClass = createEClass(DISCRIMINATOR);
		createEReference(discriminatorEClass, DISCRIMINATOR__CASE);
		createEAttribute(discriminatorEClass, DISCRIMINATOR__COLUMN);
		createEAttribute(discriminatorEClass, DISCRIMINATOR__JAVA_TYPE);
		createEAttribute(discriminatorEClass, DISCRIMINATOR__JDBC_TYPE);
		createEAttribute(discriminatorEClass, DISCRIMINATOR__TYPE_HANDLER);

		documentRootEClass = createEClass(DOCUMENT_ROOT);
		createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
		createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
		createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
		createEReference(documentRootEClass, DOCUMENT_ROOT__ARG);
		createEReference(documentRootEClass, DOCUMENT_ROOT__ASSOCIATION);
		createEReference(documentRootEClass, DOCUMENT_ROOT__CACHE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__CACHE_REF);
		createEReference(documentRootEClass, DOCUMENT_ROOT__CASE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__CHOOSE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__COLLECTION);
		createEReference(documentRootEClass, DOCUMENT_ROOT__CONSTRUCTOR);
		createEReference(documentRootEClass, DOCUMENT_ROOT__DELETE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__DISCRIMINATOR);
		createEReference(documentRootEClass, DOCUMENT_ROOT__FOREACH);
		createEReference(documentRootEClass, DOCUMENT_ROOT__ID);
		createEReference(documentRootEClass, DOCUMENT_ROOT__ID_ARG);
		createEReference(documentRootEClass, DOCUMENT_ROOT__IF);
		createEReference(documentRootEClass, DOCUMENT_ROOT__INCLUDE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__INSERT);
		createEReference(documentRootEClass, DOCUMENT_ROOT__MAPPER);
		createEReference(documentRootEClass, DOCUMENT_ROOT__OTHERWISE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PARAMETER);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PARAMETER_MAP);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PROPERTY);
		createEReference(documentRootEClass, DOCUMENT_ROOT__RESULT);
		createEReference(documentRootEClass, DOCUMENT_ROOT__RESULT_MAP);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SELECT);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SELECT_KEY);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SET);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SQL);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TRIM);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE_ALIAS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__UPDATE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__WHEN);
		createEReference(documentRootEClass, DOCUMENT_ROOT__WHERE);

		foreachEClass = createEClass(FOREACH);
		createEAttribute(foreachEClass, FOREACH__CLOSE);
		createEReference(foreachEClass, FOREACH__COLLECTION);
		createEAttribute(foreachEClass, FOREACH__INDEX);
		createEAttribute(foreachEClass, FOREACH__ITEM);
		createEAttribute(foreachEClass, FOREACH__OPEN);
		createEAttribute(foreachEClass, FOREACH__SEPARATOR);

		idEClass = createEClass(ID);

		idArgEClass = createEClass(ID_ARG);

		ifEClass = createEClass(IF);
		createEAttribute(ifEClass, IF__TEST);

		includeEClass = createEClass(INCLUDE);
		createEReference(includeEClass, INCLUDE__REFID);

		insertEClass = createEClass(INSERT);
		createEReference(insertEClass, INSERT__SELECT_KEY);
		createEAttribute(insertEClass, INSERT__KEY_COLUMN);
		createEAttribute(insertEClass, INSERT__KEY_PROPERTY);
		createEAttribute(insertEClass, INSERT__USE_GENERATED_KEYS);

		mapperEClass = createEClass(MAPPER);
		createEAttribute(mapperEClass, MAPPER__GROUP);
		createEReference(mapperEClass, MAPPER__CACHE_REF);
		createEReference(mapperEClass, MAPPER__CACHE);
		createEReference(mapperEClass, MAPPER__RESULT_MAP);
		createEReference(mapperEClass, MAPPER__PARAMETER_MAP);
		createEReference(mapperEClass, MAPPER__SQL);
		createEReference(mapperEClass, MAPPER__INSERT);
		createEReference(mapperEClass, MAPPER__UPDATE);
		createEReference(mapperEClass, MAPPER__DELETE);
		createEReference(mapperEClass, MAPPER__SELECT);
		createEAttribute(mapperEClass, MAPPER__NAMESPACE);

		otherwiseEClass = createEClass(OTHERWISE);

		parameterEClass = createEClass(PARAMETER);
		createEAttribute(parameterEClass, PARAMETER__JAVA_TYPE);
		createEAttribute(parameterEClass, PARAMETER__JDBC_TYPE);
		createEAttribute(parameterEClass, PARAMETER__MODE);
		createEAttribute(parameterEClass, PARAMETER__PROPERTY);
		createEReference(parameterEClass, PARAMETER__RESULT_MAP);
		createEAttribute(parameterEClass, PARAMETER__SCALE);
		createEAttribute(parameterEClass, PARAMETER__TYPE_HANDLER);

		parameterMapEClass = createEClass(PARAMETER_MAP);
		createEReference(parameterMapEClass, PARAMETER_MAP__PARAMETER);
		createEAttribute(parameterMapEClass, PARAMETER_MAP__ID);
		createEAttribute(parameterMapEClass, PARAMETER_MAP__TYPE);

		propertyEClass = createEClass(PROPERTY);
		createEAttribute(propertyEClass, PROPERTY__NAME);
		createEAttribute(propertyEClass, PROPERTY__VALUE);

		resultEClass = createEClass(RESULT);

		resultMapEClass = createEClass(RESULT_MAP);
		createEReference(resultMapEClass, RESULT_MAP__CONSTRUCTOR);
		createEReference(resultMapEClass, RESULT_MAP__IDX);
		createEReference(resultMapEClass, RESULT_MAP__RESULT);
		createEReference(resultMapEClass, RESULT_MAP__ASSOCIATION);
		createEReference(resultMapEClass, RESULT_MAP__COLLECTION);
		createEReference(resultMapEClass, RESULT_MAP__DISCRIMINATOR);
		createEAttribute(resultMapEClass, RESULT_MAP__AUTO_MAPPING);
		createEReference(resultMapEClass, RESULT_MAP__EXTENDS);
		createEAttribute(resultMapEClass, RESULT_MAP__ID);
		createEAttribute(resultMapEClass, RESULT_MAP__TYPE);

		selectEClass = createEClass(SELECT);
		createEAttribute(selectEClass, SELECT__FETCH_SIZE);
		createEReference(selectEClass, SELECT__RESULT_MAP);
		createEAttribute(selectEClass, SELECT__RESULT_SET_TYPE);
		createEAttribute(selectEClass, SELECT__RESULT_TYPE);
		createEAttribute(selectEClass, SELECT__USE_CACHE);

		selectKeyEClass = createEClass(SELECT_KEY);
		createEAttribute(selectKeyEClass, SELECT_KEY__MIXED);
		createEAttribute(selectKeyEClass, SELECT_KEY__TG_NESTED_CONDITION);
		createEReference(selectKeyEClass, SELECT_KEY__INCLUDE);
		createEReference(selectKeyEClass, SELECT_KEY__TRIM);
		createEReference(selectKeyEClass, SELECT_KEY__WHERE);
		createEReference(selectKeyEClass, SELECT_KEY__SET);
		createEReference(selectKeyEClass, SELECT_KEY__FOREACH);
		createEReference(selectKeyEClass, SELECT_KEY__CHOOSE);
		createEReference(selectKeyEClass, SELECT_KEY__IF);
		createEAttribute(selectKeyEClass, SELECT_KEY__DATABASE_ID);
		createEAttribute(selectKeyEClass, SELECT_KEY__KEY_PROPERTY);
		createEAttribute(selectKeyEClass, SELECT_KEY__ORDER);
		createEAttribute(selectKeyEClass, SELECT_KEY__RESULT_TYPE);
		createEAttribute(selectKeyEClass, SELECT_KEY__STATEMENT_TYPE);

		setEClass = createEClass(SET);

		sqlEClass = createEClass(SQL);
		createEAttribute(sqlEClass, SQL__ID);

		trimEClass = createEClass(TRIM);
		createEAttribute(trimEClass, TRIM__PREFIX);
		createEAttribute(trimEClass, TRIM__PREFIX_OVERRIDES);
		createEAttribute(trimEClass, TRIM__SUFFIX);
		createEAttribute(trimEClass, TRIM__SUFFIX_OVERRIDES);

		typeAliasEClass = createEClass(TYPE_ALIAS);
		createEAttribute(typeAliasEClass, TYPE_ALIAS__ALIAS);
		createEAttribute(typeAliasEClass, TYPE_ALIAS__TYPE);

		updateEClass = createEClass(UPDATE);

		whenEClass = createEClass(WHEN);
		createEAttribute(whenEClass, WHEN__TEST);

		whereEClass = createEClass(WHERE);

		// Create enums
		callStmtTypeEEnum = createEEnum(CALL_STMT_TYPE);
		modeTypeEEnum = createEEnum(MODE_TYPE);
		orderTypeEEnum = createEEnum(ORDER_TYPE);
		resultSetTypeTypeEEnum = createEEnum(RESULT_SET_TYPE_TYPE);

		// Create data types
		callStmtTypeObjectEDataType = createEDataType(CALL_STMT_TYPE_OBJECT);
		modeTypeObjectEDataType = createEDataType(MODE_TYPE_OBJECT);
		orderTypeObjectEDataType = createEDataType(ORDER_TYPE_OBJECT);
		resultSetTypeTypeObjectEDataType = createEDataType(RESULT_SET_TYPE_TYPE_OBJECT);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Obtain other dependent packages
		XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
		CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		abstractStatementEClass.getESuperTypes().add(this.getCommonNestedStatement());
		abstractStatementEClass.getESuperTypes().add(theCommonPackage.getIIdentified());
		argEClass.getESuperTypes().add(this.getAbstractArg());
		deleteEClass.getESuperTypes().add(this.getAbstractStatement());
		foreachEClass.getESuperTypes().add(this.getCommonNestedStatement());
		idEClass.getESuperTypes().add(this.getAbstractIdOrResult());
		idArgEClass.getESuperTypes().add(this.getAbstractArg());
		ifEClass.getESuperTypes().add(this.getCommonNestedStatement());
		insertEClass.getESuperTypes().add(this.getAbstractStatement());
		otherwiseEClass.getESuperTypes().add(this.getCommonNestedStatement());
		parameterMapEClass.getESuperTypes().add(theCommonPackage.getIIdentified());
		resultEClass.getESuperTypes().add(this.getAbstractIdOrResult());
		resultMapEClass.getESuperTypes().add(theCommonPackage.getIIdentified());
		selectEClass.getESuperTypes().add(this.getAbstractStatement());
		setEClass.getESuperTypes().add(this.getCommonNestedStatement());
		sqlEClass.getESuperTypes().add(this.getCommonNestedStatement());
		sqlEClass.getESuperTypes().add(theCommonPackage.getIIdentified());
		trimEClass.getESuperTypes().add(this.getCommonNestedStatement());
		updateEClass.getESuperTypes().add(this.getAbstractStatement());
		whenEClass.getESuperTypes().add(this.getCommonNestedStatement());
		whereEClass.getESuperTypes().add(this.getCommonNestedStatement());

		// Initialize classes and features; add operations and parameters
		initEClass(abstractArgEClass, AbstractArg.class, "AbstractArg", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getAbstractArg_Column(), theXMLTypePackage.getString(), "column", null, 0, 1, AbstractArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractArg_JavaType(), theXMLTypePackage.getString(), "javaType", null, 0, 1, AbstractArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractArg_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, AbstractArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAbstractArg_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, 1, AbstractArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAbstractArg_Select(), this.getSelect(), null, "select", null, 0, 1, AbstractArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractArg_TypeHandler(), theXMLTypePackage.getString(), "typeHandler", null, 0, 1, AbstractArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(abstractIdOrResultEClass, AbstractIdOrResult.class, "AbstractIdOrResult", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getAbstractIdOrResult_Column(), theXMLTypePackage.getString(), "column", null, 0, 1, AbstractIdOrResult.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractIdOrResult_JavaType(), theXMLTypePackage.getString(), "javaType", null, 0, 1, AbstractIdOrResult.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractIdOrResult_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, AbstractIdOrResult.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractIdOrResult_Property(), theXMLTypePackage.getString(), "property", null, 0, 1, AbstractIdOrResult.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractIdOrResult_TypeHandler(), theXMLTypePackage.getString(), "typeHandler", null, 0, 1, AbstractIdOrResult.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(abstractStatementEClass, AbstractStatement.class, "AbstractStatement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getAbstractStatement_DatabaseId(), theXMLTypePackage.getString(), "databaseId", null, 0, 1, AbstractStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractStatement_FlushCache(), theXMLTypePackage.getBoolean(), "flushCache", null, 0, 1, AbstractStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractStatement_Id(), theXMLTypePackage.getID(), "id", null, 1, 1, AbstractStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAbstractStatement_ParameterMap(), this.getParameterMap(), null, "parameterMap", null, 0, 1, AbstractStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractStatement_ParameterType(), theXMLTypePackage.getString(), "parameterType", null, 0, 1, AbstractStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractStatement_StatementType(), this.getCallStmtType(), "statementType", null, 0, 1, AbstractStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAbstractStatement_Timeout(), theEcorePackage.getEIntegerObject(), "timeout", null, 0, 1, AbstractStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(argEClass, Arg.class, "Arg", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(associationEClass, Association.class, "Association", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getAssociation_Constructor(), this.getConstructor(), null, "constructor", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAssociation_Idx(), this.getId(), null, "idx", null, 0, -1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAssociation_Result(), this.getResult(), null, "result", null, 0, -1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAssociation_Association(), this.getAssociation(), null, "association", null, 0, -1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAssociation_Collection(), this.getCollection(), null, "collection", null, 0, -1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAssociation_Discriminator(), this.getDiscriminator(), null, "discriminator", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAssociation_Column(), theXMLTypePackage.getString(), "column", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAssociation_ColumnPrefix(), theXMLTypePackage.getString(), "columnPrefix", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAssociation_JavaType(), theXMLTypePackage.getString(), "javaType", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAssociation_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAssociation_NotNullColumn(), theXMLTypePackage.getString(), "notNullColumn", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAssociation_Property(), theXMLTypePackage.getID(), "property", null, 1, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAssociation_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAssociation_Select(), this.getSelect(), null, "select", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAssociation_TypeHandler(), theXMLTypePackage.getString(), "typeHandler", null, 0, 1, Association.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(cacheEClass, Cache.class, "Cache", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCache_Property(), this.getProperty(), null, "property", null, 0, -1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCache_Eviction(), theXMLTypePackage.getString(), "eviction", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCache_FlushInterval(), theXMLTypePackage.getLong(), "flushInterval", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCache_ReadOnly(), theXMLTypePackage.getBoolean(), "readOnly", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCache_Size(), theEcorePackage.getEIntegerObject(), "size", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCache_Type(), theXMLTypePackage.getString(), "type", null, 0, 1, Cache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(cacheRefEClass, CacheRef.class, "CacheRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getCacheRef_Namespace(), theXMLTypePackage.getString(), "namespace", null, 1, 1, CacheRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(caseEClass, Case.class, "Case", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCase_Constructor(), this.getConstructor(), null, "constructor", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCase_Idx(), this.getId(), null, "idx", null, 0, -1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCase_Result(), this.getResult(), null, "result", null, 0, -1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCase_Association(), this.getAssociation(), null, "association", null, 0, -1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCase_Collection(), this.getCollection(), null, "collection", null, 0, -1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCase_Discriminator(), this.getDiscriminator(), null, "discriminator", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCase_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCase_ResultType(), theXMLTypePackage.getString(), "resultType", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCase_Value(), theXMLTypePackage.getID(), "value", null, 1, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(chooseEClass, Choose.class, "Choose", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getChoose_When(), this.getWhen(), null, "when", null, 0, -1, Choose.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getChoose_Otherwise(), this.getOtherwise(), null, "otherwise", null, 0, 1, Choose.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(collectionEClass, Collection.class, "Collection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCollection_Constructor(), this.getConstructor(), null, "constructor", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCollection_Idx(), this.getId(), null, "idx", null, 0, -1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCollection_Result(), this.getResult(), null, "result", null, 0, -1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCollection_Association(), this.getAssociation(), null, "association", null, 0, -1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCollection_Collection(), this.getCollection(), null, "collection", null, 0, -1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCollection_Discriminator(), this.getDiscriminator(), null, "discriminator", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_Column(), theXMLTypePackage.getString(), "column", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_ColumnPrefix(), theXMLTypePackage.getString(), "columnPrefix", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_JavaType(), theXMLTypePackage.getString(), "javaType", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_NotNullColumn(), theXMLTypePackage.getString(), "notNullColumn", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_OfType(), theXMLTypePackage.getString(), "ofType", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_Property(), theXMLTypePackage.getID(), "property", null, 1, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCollection_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getCollection_Select(), this.getSelect(), null, "select", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCollection_TypeHandler(), theXMLTypePackage.getString(), "typeHandler", null, 0, 1, Collection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(commonNestedStatementEClass, CommonNestedStatement.class, "CommonNestedStatement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getCommonNestedStatement_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, CommonNestedStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCommonNestedStatement_TgNestedCondition(), ecorePackage.getEFeatureMapEntry(), "tgNestedCondition", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getCommonNestedStatement_Include(), this.getInclude(), null, "include", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getCommonNestedStatement_Trim(), this.getTrim(), null, "trim", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getCommonNestedStatement_Where(), this.getWhere(), null, "where", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getCommonNestedStatement_Set(), this.getSet(), null, "set", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getCommonNestedStatement_Foreach(), this.getForeach(), null, "foreach", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getCommonNestedStatement_Choose(), this.getChoose(), null, "choose", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getCommonNestedStatement_If(), this.getIf(), null, "if", null, 0, -1, CommonNestedStatement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(constructorEClass, Constructor.class, "Constructor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getConstructor_IdArg(), this.getIdArg(), null, "idArg", null, 0, -1, Constructor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConstructor_Arg(), this.getArg(), null, "arg", null, 0, -1, Constructor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(deleteEClass, Delete.class, "Delete", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(discriminatorEClass, Discriminator.class, "Discriminator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDiscriminator_Case(), this.getCase(), null, "case", null, 1, -1, Discriminator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDiscriminator_Column(), theXMLTypePackage.getString(), "column", null, 0, 1, Discriminator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDiscriminator_JavaType(), theXMLTypePackage.getString(), "javaType", null, 0, 1, Discriminator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDiscriminator_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, Discriminator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDiscriminator_TypeHandler(), theXMLTypePackage.getString(), "typeHandler", null, 0, 1, Discriminator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(documentRootEClass, DocumentRoot.class, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Arg(), this.getArg(), null, "arg", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Association(), this.getAssociation(), null, "association", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Cache(), this.getCache(), null, "cache", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_CacheRef(), this.getCacheRef(), null, "cacheRef", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Case(), this.getCase(), null, "case", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Choose(), this.getChoose(), null, "choose", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Collection(), this.getCollection(), null, "collection", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Constructor(), this.getConstructor(), null, "constructor", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Delete(), this.getDelete(), null, "delete", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Discriminator(), this.getDiscriminator(), null, "discriminator", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Foreach(), this.getForeach(), null, "foreach", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Id(), this.getId(), null, "id", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_IdArg(), this.getIdArg(), null, "idArg", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_If(), this.getIf(), null, "if", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Include(), this.getInclude(), null, "include", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Insert(), this.getInsert(), null, "insert", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Mapper(), this.getMapper(), null, "mapper", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Otherwise(), this.getOtherwise(), null, "otherwise", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Parameter(), this.getParameter(), null, "parameter", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_ParameterMap(), this.getParameterMap(), null, "parameterMap", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Property(), this.getProperty(), null, "property", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Result(), this.getResult(), null, "result", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Select(), this.getSelect(), null, "select", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_SelectKey(), this.getSelectKey(), null, "selectKey", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Set(), this.getSet(), null, "set", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Sql(), this.getSql(), null, "sql", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Trim(), this.getTrim(), null, "trim", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TypeAlias(), this.getTypeAlias(), null, "typeAlias", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Update(), this.getUpdate(), null, "update", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_When(), this.getWhen(), null, "when", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Where(), this.getWhere(), null, "where", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(foreachEClass, Foreach.class, "Foreach", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getForeach_Close(), theXMLTypePackage.getString(), "close", null, 0, 1, Foreach.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getForeach_Collection(), this.getCollection(), null, "collection", null, 1, 1, Foreach.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getForeach_Index(), theXMLTypePackage.getString(), "index", null, 0, 1, Foreach.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getForeach_Item(), theXMLTypePackage.getString(), "item", null, 0, 1, Foreach.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getForeach_Open(), theXMLTypePackage.getString(), "open", null, 0, 1, Foreach.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getForeach_Separator(), theXMLTypePackage.getString(), "separator", null, 0, 1, Foreach.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(idEClass, Id.class, "Id", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(idArgEClass, IdArg.class, "IdArg", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(ifEClass, If.class, "If", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getIf_Test(), theXMLTypePackage.getString(), "test", null, 1, 1, If.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(includeEClass, Include.class, "Include", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getInclude_Refid(), this.getSql(), null, "refid", null, 1, 1, Include.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(insertEClass, Insert.class, "Insert", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getInsert_SelectKey(), this.getSelectKey(), null, "selectKey", null, 0, 1, Insert.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEAttribute(getInsert_KeyColumn(), theXMLTypePackage.getString(), "keyColumn", null, 0, 1, Insert.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getInsert_KeyProperty(), theXMLTypePackage.getString(), "keyProperty", null, 0, 1, Insert.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getInsert_UseGeneratedKeys(), theXMLTypePackage.getBoolean(), "useGeneratedKeys", null, 0, 1, Insert.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(mapperEClass, Mapper.class, "Mapper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getMapper_Group(), ecorePackage.getEFeatureMapEntry(), "group", null, 0, -1, Mapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_CacheRef(), this.getCacheRef(), null, "cacheRef", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_Cache(), this.getCache(), null, "cache", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_ParameterMap(), this.getParameterMap(), null, "parameterMap", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_Sql(), this.getSql(), null, "sql", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_Insert(), this.getInsert(), null, "insert", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_Update(), this.getUpdate(), null, "update", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_Delete(), this.getDelete(), null, "delete", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getMapper_Select(), this.getSelect(), null, "select", null, 0, -1, Mapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEAttribute(getMapper_Namespace(), theXMLTypePackage.getString(), "namespace", null, 0, 1, Mapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(otherwiseEClass, Otherwise.class, "Otherwise", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getParameter_JavaType(), theXMLTypePackage.getString(), "javaType", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getParameter_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getParameter_Mode(), this.getModeType(), "mode", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getParameter_Property(), theXMLTypePackage.getID(), "property", null, 1, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getParameter_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getParameter_Scale(), theEcorePackage.getEIntegerObject(), "scale", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getParameter_TypeHandler(), theXMLTypePackage.getString(), "typeHandler", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(parameterMapEClass, ParameterMap.class, "ParameterMap", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getParameterMap_Parameter(), this.getParameter(), null, "parameter", null, 0, -1, ParameterMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getParameterMap_Id(), theXMLTypePackage.getID(), "id", null, 1, 1, ParameterMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getParameterMap_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, ParameterMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getProperty_Name(), theXMLTypePackage.getID(), "name", null, 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getProperty_Value(), theXMLTypePackage.getString(), "value", null, 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(resultEClass, Result.class, "Result", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(resultMapEClass, ResultMap.class, "ResultMap", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getResultMap_Constructor(), this.getConstructor(), null, "constructor", null, 0, 1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getResultMap_Idx(), this.getId(), null, "idx", null, 0, -1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getResultMap_Result(), this.getResult(), null, "result", null, 0, -1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getResultMap_Association(), this.getAssociation(), null, "association", null, 0, -1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getResultMap_Collection(), this.getCollection(), null, "collection", null, 0, -1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getResultMap_Discriminator(), this.getDiscriminator(), null, "discriminator", null, 0, 1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getResultMap_AutoMapping(), theXMLTypePackage.getBoolean(), "autoMapping", null, 0, 1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getResultMap_Extends(), this.getResultMap(), null, "extends", null, 0, 1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getResultMap_Id(), theXMLTypePackage.getID(), "id", null, 1, 1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getResultMap_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, ResultMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(selectEClass, Select.class, "Select", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSelect_FetchSize(), theEcorePackage.getEIntegerObject(), "fetchSize", null, 0, 1, Select.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getSelect_ResultMap(), this.getResultMap(), null, "resultMap", null, 0, 1, Select.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelect_ResultSetType(), this.getResultSetTypeType(), "resultSetType", null, 0, 1, Select.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelect_ResultType(), theXMLTypePackage.getString(), "resultType", null, 0, 1, Select.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelect_UseCache(), theXMLTypePackage.getBoolean(), "useCache", null, 0, 1, Select.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(selectKeyEClass, SelectKey.class, "SelectKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSelectKey_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, SelectKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelectKey_TgNestedCondition(), ecorePackage.getEFeatureMapEntry(), "tgNestedCondition", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSelectKey_Include(), this.getInclude(), null, "include", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSelectKey_Trim(), this.getTrim(), null, "trim", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSelectKey_Where(), this.getWhere(), null, "where", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSelectKey_Set(), this.getSet(), null, "set", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSelectKey_Foreach(), this.getForeach(), null, "foreach", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSelectKey_Choose(), this.getChoose(), null, "choose", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSelectKey_If(), this.getIf(), null, "if", null, 0, -1, SelectKey.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelectKey_DatabaseId(), theXMLTypePackage.getString(), "databaseId", null, 0, 1, SelectKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelectKey_KeyProperty(), theXMLTypePackage.getString(), "keyProperty", null, 0, 1, SelectKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelectKey_Order(), this.getOrderType(), "order", null, 0, 1, SelectKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelectKey_ResultType(), theXMLTypePackage.getString(), "resultType", null, 0, 1, SelectKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSelectKey_StatementType(), this.getCallStmtType(), "statementType", null, 0, 1, SelectKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(setEClass, Set.class, "Set", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(sqlEClass, Sql.class, "Sql", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSql_Id(), theXMLTypePackage.getID(), "id", null, 1, 1, Sql.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(trimEClass, Trim.class, "Trim", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTrim_Prefix(), theXMLTypePackage.getString(), "prefix", null, 0, 1, Trim.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTrim_PrefixOverrides(), theXMLTypePackage.getString(), "prefixOverrides", null, 0, 1, Trim.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTrim_Suffix(), theXMLTypePackage.getString(), "suffix", null, 0, 1, Trim.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTrim_SuffixOverrides(), theXMLTypePackage.getString(), "suffixOverrides", null, 0, 1, Trim.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(typeAliasEClass, TypeAlias.class, "TypeAlias", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTypeAlias_Alias(), theXMLTypePackage.getID(), "alias", null, 1, 1, TypeAlias.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTypeAlias_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, TypeAlias.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(updateEClass, Update.class, "Update", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(whenEClass, When.class, "When", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getWhen_Test(), theXMLTypePackage.getString(), "test", null, 1, 1, When.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(whereEClass, Where.class, "Where", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		// Initialize enums and add enum literals
		initEEnum(callStmtTypeEEnum, CallStmtType.class, "CallStmtType");
		addEEnumLiteral(callStmtTypeEEnum, CallStmtType.STATEMENT);
		addEEnumLiteral(callStmtTypeEEnum, CallStmtType.CALLABLE);
		addEEnumLiteral(callStmtTypeEEnum, CallStmtType.PREPARED);

		initEEnum(modeTypeEEnum, ModeType.class, "ModeType");
		addEEnumLiteral(modeTypeEEnum, ModeType.IN);
		addEEnumLiteral(modeTypeEEnum, ModeType.OUT);
		addEEnumLiteral(modeTypeEEnum, ModeType.INOUT);

		initEEnum(orderTypeEEnum, OrderType.class, "OrderType");
		addEEnumLiteral(orderTypeEEnum, OrderType.BEFORE);
		addEEnumLiteral(orderTypeEEnum, OrderType.AFTER);

		initEEnum(resultSetTypeTypeEEnum, ResultSetTypeType.class, "ResultSetTypeType");
		addEEnumLiteral(resultSetTypeTypeEEnum, ResultSetTypeType.SCROLLINSENSITIVE);
		addEEnumLiteral(resultSetTypeTypeEEnum, ResultSetTypeType.FORWARDONLY);
		addEEnumLiteral(resultSetTypeTypeEEnum, ResultSetTypeType.SCROLLSENSITIVE);

		// Initialize data types
		initEDataType(callStmtTypeObjectEDataType, CallStmtType.class, "CallStmtTypeObject", IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS);
		initEDataType(modeTypeObjectEDataType, ModeType.class, "ModeTypeObject", IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS);
		initEDataType(orderTypeObjectEDataType, OrderType.class, "OrderTypeObject", IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS);
		initEDataType(resultSetTypeTypeObjectEDataType, ResultSetTypeType.class, "ResultSetTypeTypeObject", IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS);

		// Create resource
		createResource(eNS_URI);

		// Create annotations
		// http:///org/eclipse/emf/ecore/util/ExtendedMetaData
		createExtendedMetaDataAnnotations();
	}

	/**
	 * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected void createExtendedMetaDataAnnotations() {
		String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";			
		addAnnotation
		  (this, 
		   source, 
		   new String[] {
			 "qualified", "false"
		   });		
		addAnnotation
		  (abstractArgEClass, 
		   source, 
		   new String[] {
			 "name", "abstractArg",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getAbstractArg_Column(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "column",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractArg_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractArg_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractArg_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractArg_Select(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "select",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractArg_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (abstractIdOrResultEClass, 
		   source, 
		   new String[] {
			 "name", "abstractIdOrResult",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getAbstractIdOrResult_Column(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "column",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractIdOrResult_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractIdOrResult_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractIdOrResult_Property(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractIdOrResult_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (abstractStatementEClass, 
		   source, 
		   new String[] {
			 "name", "abstractStatement",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getAbstractStatement_DatabaseId(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "databaseId",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractStatement_FlushCache(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "flushCache",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractStatement_Id(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractStatement_ParameterMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "parameterMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractStatement_ParameterType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "parameterType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractStatement_StatementType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "statementType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAbstractStatement_Timeout(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "timeout",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (argEClass, 
		   source, 
		   new String[] {
			 "name", "arg",
			 "kind", "empty"
		   });		
		addAnnotation
		  (associationEClass, 
		   source, 
		   new String[] {
			 "name", "association",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getAssociation_Constructor(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "constructor",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Idx(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Result(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "result",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Association(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "association",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Collection(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "collection",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Discriminator(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "discriminator",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Column(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "column",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_ColumnPrefix(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "columnPrefix",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_NotNullColumn(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "notNullColumn",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Property(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_Select(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "select",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getAssociation_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (cacheEClass, 
		   source, 
		   new String[] {
			 "name", "cache",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getCache_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCache_Eviction(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "eviction",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCache_FlushInterval(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "flushInterval",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCache_ReadOnly(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "readOnly",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCache_Size(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "size",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCache_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (cacheRefEClass, 
		   source, 
		   new String[] {
			 "name", "cache-ref",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getCacheRef_Namespace(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "namespace",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (callStmtTypeEEnum, 
		   source, 
		   new String[] {
			 "name", "callStmtType"
		   });		
		addAnnotation
		  (callStmtTypeObjectEDataType, 
		   source, 
		   new String[] {
			 "name", "callStmtType:Object",
			 "baseType", "callStmtType"
		   });		
		addAnnotation
		  (caseEClass, 
		   source, 
		   new String[] {
			 "name", "case",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getCase_Constructor(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "constructor",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_Idx(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_Result(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "result",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_Association(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "association",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_Collection(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "collection",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_Discriminator(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "discriminator",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_ResultType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCase_Value(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "value",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (chooseEClass, 
		   source, 
		   new String[] {
			 "name", "choose",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getChoose_When(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "when",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getChoose_Otherwise(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "otherwise",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (collectionEClass, 
		   source, 
		   new String[] {
			 "name", "collection",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getCollection_Constructor(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "constructor",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Idx(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Result(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "result",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Association(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "association",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Collection(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "collection",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Discriminator(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "discriminator",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Column(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "column",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_ColumnPrefix(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "columnPrefix",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_NotNullColumn(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "notNullColumn",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_OfType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "ofType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Property(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_Select(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "select",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getCollection_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (commonNestedStatementEClass, 
		   source, 
		   new String[] {
			 "name", "commonNestedStatement",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getCommonNestedStatement_Mixed(), 
		   source, 
		   new String[] {
			 "kind", "elementWildcard",
			 "name", ":mixed"
		   });		
		addAnnotation
		  (getCommonNestedStatement_TgNestedCondition(), 
		   source, 
		   new String[] {
			 "kind", "group",
			 "name", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getCommonNestedStatement_Include(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "include",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getCommonNestedStatement_Trim(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "trim",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getCommonNestedStatement_Where(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "where",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getCommonNestedStatement_Set(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "set",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getCommonNestedStatement_Foreach(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "foreach",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getCommonNestedStatement_Choose(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "choose",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getCommonNestedStatement_If(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "if",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (constructorEClass, 
		   source, 
		   new String[] {
			 "name", "constructor",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getConstructor_IdArg(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "idArg",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConstructor_Arg(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "arg",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (deleteEClass, 
		   source, 
		   new String[] {
			 "name", "delete",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (discriminatorEClass, 
		   source, 
		   new String[] {
			 "name", "discriminator",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getDiscriminator_Case(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "case",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDiscriminator_Column(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "column",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDiscriminator_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDiscriminator_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDiscriminator_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (documentRootEClass, 
		   source, 
		   new String[] {
			 "name", "",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getDocumentRoot_Mixed(), 
		   source, 
		   new String[] {
			 "kind", "elementWildcard",
			 "name", ":mixed"
		   });		
		addAnnotation
		  (getDocumentRoot_XMLNSPrefixMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "xmlns:prefix"
		   });		
		addAnnotation
		  (getDocumentRoot_XSISchemaLocation(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "xsi:schemaLocation"
		   });		
		addAnnotation
		  (getDocumentRoot_Arg(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "arg",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Association(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "association",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Cache(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "cache",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_CacheRef(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "cache-ref",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Case(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "case",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Choose(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "choose",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Collection(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "collection",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Constructor(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "constructor",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Delete(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "delete",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Discriminator(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "discriminator",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Foreach(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "foreach",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Id(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_IdArg(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "idArg",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_If(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "if",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Include(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "include",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Insert(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "insert",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Mapper(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "mapper",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Otherwise(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "otherwise",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Parameter(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "parameter",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_ParameterMap(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "parameterMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Result(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "result",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "resultMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Select(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "select",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_SelectKey(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "selectKey",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Set(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "set",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Sql(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "sql",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Trim(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "trim",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TypeAlias(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeAlias",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Update(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "update",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_When(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "when",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Where(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "where",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (foreachEClass, 
		   source, 
		   new String[] {
			 "name", "foreach",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getForeach_Close(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "close",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getForeach_Collection(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "collection",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getForeach_Index(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "index",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getForeach_Item(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "item",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getForeach_Open(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "open",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getForeach_Separator(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "separator",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (idEClass, 
		   source, 
		   new String[] {
			 "name", "id",
			 "kind", "empty"
		   });		
		addAnnotation
		  (idArgEClass, 
		   source, 
		   new String[] {
			 "name", "idArg",
			 "kind", "empty"
		   });		
		addAnnotation
		  (ifEClass, 
		   source, 
		   new String[] {
			 "name", "if",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getIf_Test(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "test",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (includeEClass, 
		   source, 
		   new String[] {
			 "name", "include",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getInclude_Refid(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "refid",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (insertEClass, 
		   source, 
		   new String[] {
			 "name", "insert",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getInsert_SelectKey(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "selectKey",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getInsert_KeyColumn(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "keyColumn",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getInsert_KeyProperty(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "keyProperty",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getInsert_UseGeneratedKeys(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "useGeneratedKeys",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (mapperEClass, 
		   source, 
		   new String[] {
			 "name", "mapper",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getMapper_Group(), 
		   source, 
		   new String[] {
			 "kind", "group",
			 "name", "group:0"
		   });		
		addAnnotation
		  (getMapper_CacheRef(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "cache-ref",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_Cache(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "cache",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "resultMap",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_ParameterMap(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "parameterMap",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_Sql(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "sql",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_Insert(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "insert",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_Update(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "update",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_Delete(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "delete",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_Select(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "select",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getMapper_Namespace(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "namespace",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (modeTypeEEnum, 
		   source, 
		   new String[] {
			 "name", "mode_._type"
		   });		
		addAnnotation
		  (modeTypeObjectEDataType, 
		   source, 
		   new String[] {
			 "name", "mode_._type:Object",
			 "baseType", "mode_._type"
		   });		
		addAnnotation
		  (orderTypeEEnum, 
		   source, 
		   new String[] {
			 "name", "order_._type"
		   });		
		addAnnotation
		  (orderTypeObjectEDataType, 
		   source, 
		   new String[] {
			 "name", "order_._type:Object",
			 "baseType", "order_._type"
		   });		
		addAnnotation
		  (otherwiseEClass, 
		   source, 
		   new String[] {
			 "name", "otherwise",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (parameterEClass, 
		   source, 
		   new String[] {
			 "name", "parameter",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getParameter_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameter_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameter_Mode(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "mode",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameter_Property(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameter_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameter_Scale(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "scale",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameter_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (parameterMapEClass, 
		   source, 
		   new String[] {
			 "name", "parameterMap",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getParameterMap_Parameter(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "parameter",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameterMap_Id(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getParameterMap_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (propertyEClass, 
		   source, 
		   new String[] {
			 "name", "property",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getProperty_Name(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "name",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getProperty_Value(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "value",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (resultEClass, 
		   source, 
		   new String[] {
			 "name", "result",
			 "kind", "empty"
		   });		
		addAnnotation
		  (resultMapEClass, 
		   source, 
		   new String[] {
			 "name", "resultMap",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getResultMap_Constructor(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "constructor",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Idx(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Result(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "result",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Association(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "association",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Collection(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "collection",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Discriminator(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "discriminator",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_AutoMapping(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "autoMapping",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Extends(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "extends",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Id(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultMap_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (resultSetTypeTypeEEnum, 
		   source, 
		   new String[] {
			 "name", "resultSetType_._type"
		   });		
		addAnnotation
		  (resultSetTypeTypeObjectEDataType, 
		   source, 
		   new String[] {
			 "name", "resultSetType_._type:Object",
			 "baseType", "resultSetType_._type"
		   });		
		addAnnotation
		  (selectEClass, 
		   source, 
		   new String[] {
			 "name", "select",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getSelect_FetchSize(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "fetchSize",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelect_ResultMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelect_ResultSetType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultSetType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelect_ResultType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelect_UseCache(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "useCache",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (selectKeyEClass, 
		   source, 
		   new String[] {
			 "name", "selectKey",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getSelectKey_Mixed(), 
		   source, 
		   new String[] {
			 "kind", "elementWildcard",
			 "name", ":mixed"
		   });		
		addAnnotation
		  (getSelectKey_TgNestedCondition(), 
		   source, 
		   new String[] {
			 "kind", "group",
			 "name", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_Include(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "include",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_Trim(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "trim",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_Where(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "where",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_Set(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "set",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_Foreach(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "foreach",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_Choose(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "choose",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_If(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "if",
			 "namespace", "##targetNamespace",
			 "group", "TgNestedCondition:1"
		   });		
		addAnnotation
		  (getSelectKey_DatabaseId(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "databaseId",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelectKey_KeyProperty(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "keyProperty",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelectKey_Order(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "order",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelectKey_ResultType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resultType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSelectKey_StatementType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "statementType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (setEClass, 
		   source, 
		   new String[] {
			 "name", "set",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (sqlEClass, 
		   source, 
		   new String[] {
			 "name", "sql",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getSql_Id(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (trimEClass, 
		   source, 
		   new String[] {
			 "name", "trim",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getTrim_Prefix(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "prefix",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTrim_PrefixOverrides(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "prefixOverrides",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTrim_Suffix(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "suffix",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTrim_SuffixOverrides(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "suffixOverrides",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (typeAliasEClass, 
		   source, 
		   new String[] {
			 "name", "typeAlias",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getTypeAlias_Alias(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "alias",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeAlias_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (updateEClass, 
		   source, 
		   new String[] {
			 "name", "update",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (whenEClass, 
		   source, 
		   new String[] {
			 "name", "when",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getWhen_Test(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "test",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (whereEClass, 
		   source, 
		   new String[] {
			 "name", "where",
			 "kind", "mixed"
		   });
	}

} //Mapperv3PackageImpl
